1. Field of the Invention
The field of the invention relates to data processing. More specifically, embodiments of the present invention relate to a generic system and method for preserving post data on web and application servers.
2. Related Art
Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware.
Other changes in technology have also profoundly affected how people use computers. For example, the widespread proliferation of computers prompted the development of computer networks that allow computers to communicate with each other. With the introduction of the personal computer (PC), computing became accessible to large numbers of people. Networks for personal computers were developed to allow individual users to communicate with each other. In this manner, a large number of people within a company could communicate at the same time with a central software application running on one computer system. As a result of sharing a software application with numerous users, policies must be defined and enforced that control the access and use of particular applications on a server system.
Referring now to Prior Art FIG. 1, a block diagram 10 of a generic server system is shown. The generic server system comprises a user 20 connected to a server 21 by a data connection 24. Typically, user 20 will access an application 22 that is stored on server 21 over the Internet. In a corporate environment, the user 20 could be connected to the server by an internal network e.g., an Intranet. In addition, server 21 stores a set of user policies in a database 23 for authenticating access to software application 22. Typically, the user policy database 23 comprises user names and associated passwords. When a user provides credentials to access secure applications, the credentials are checked against the stored values.
A browser application communicates with a web server and can request information using a number of methods. The most commonly used methods are “GET”, “POST”, and “HEAD.” Often in web based applications, the end users are required to submit a post on forms that trigger backend servlets, CGI scripts, etc. For example, when completing an online purchase, a user is required to fill out a form containing information such as shipping address and credit card information. This form may exist on a web page.
Online purchasing, reservations, data retrievals, etc. require extensive POST operations to be submitted through HTML (Hyper Text Markup Language) forms. For example, a customer may want to purchase books at an online bookstore. The user may start putting selected items into a shopping cart used to hold items until payment is completed. After the user is satisfied with the choice of items to be purchased, the user proceeds to checkout the items and pay for them. At this point of time, the credentials of the user are verified if the user has not yet authenticated a session. This scenario is very common, most of the users that visit a web site feel it unnecessary to complete authentication unless needed. Many users browse a web site, place items into a shopping cart, and then choose for one reason or another that they will not purchase the items. Therefore, authentication is often a second thought.
Once an un-authorized user decides to purchase selected items in a shopping cart, they are rerouted to an authentication page that causes the web server to lose all the POST data. The user then needs to reenter the data in the form. In most cases, reentering information is quite annoying for the user because they have already spent a considerable amount of time filling out the HTML form (which may be multi-part comprising html, text, graphics, etc.) the first time. Though some application providers allow caching simple forms, most of the present solutions suffer because of many drawbacks.
For example, simple form caching solutions are specific to a particular web application and are not generic to any web server. In addition, schemes to save posted data on one particular web site do not work for another web site that uses a different web server or one that serves a different type of business. Furthermore, vendors have no easy way to use POST data caching that is specific for one particular application for another application even if the applications are on the same web server. The result is that most applications lock the application provider with one particular web server without flexibility to upgrade or change the brand or type of web server. Currently, there are no generic techniques or processes that can cache POST data and then later reuse it to submit a form for any web server or J2EE agents.